//class Solution {
//    public int longestArithSeqLength(int[] nums) {
//      int len = nums.length ;
//      Map<Integer,Integer> hash = new HashMap<>() ;
//      int[][] dp = new int[len][len] ;
//      for(int i=0; i <len ; i ++){
//        for(int j=0; j < len ; j ++){
//            dp[i][j] = 2 ;
//        }
//      }
//
//      int sum = 2 ;
//      for(int j= 2 ; j < len ; j ++){
//        for(int i=1 ; i < j ; i ++){
//            hash.put(nums[i-1] , i-1) ;
//            int a = 2*nums[i] - nums[j] ;
//            if(hash.getOrDefault(a ,j) < i){
//                dp[i][j] = dp[hash.get(a)][i] + 1 ;
//            }
//         sum = Math.max(dp[i][j] , sum) ;
//        }
//      }
//     return sum ;
//    }
//}